package com.whitehatsec.sentineldataexchange;

import java.util.Properties;

/**
 * Interface extracting the necessary elements for a data exchange operation.
 * Classes implementing this interface should place the actual data exchange logic in
 * the <code>exchangeData()</code> method.
 *
 * Other values that need to be passed in to the class can be done through the <code>setProperties()</code>
 * <code>setSiteID()</code> and <code>setLogin()</code> methods.
 *
 * @author August Detlefsen [augustd@codemagi.com]
 */
public interface IDataExchanger {
	
	void setProperties(Properties props);
	
	void setSiteID(Integer newValue);

	/**
	 * Set a valid SentinelLogin object, which will be used to authenticate with the Sentinel system.
	 * It will be necessary to call this method before attempting to call any Sentinel web service functions. 
	 * 
	 * @param login
	 */
	void setLogin(SentinelLogin login);
	
	/**
	 * Actually perform the data exchange work: query sentinel, process vulnerabilities, create output, etc. 
	 */
	void exchangeData();

}
